// 复杂的自定义覆盖物
function ComplexCustomOverlay(points, text, mouseoverText) {
  this._point = new BMapGL.Point(points[0], points[1]);
  this._text = text;
  this._overText = mouseoverText;
}

function init() {
  ComplexCustomOverlay.prototype = new BMapGL.Overlay();
  ComplexCustomOverlay.prototype.initialize = function (map) {
    this._map = map;
    var div = (this._div = document.createElement("div"));
    div.style.position = "absolute";
    div.style.zIndex = BMapGL.Overlay.getZIndex(this._point.lat);
    div.style.backgroundColor = "#EE5D5B";
    div.style.border = "1px solid #BC3B3A";
    div.style.color = "white";
    div.style.padding = "2px";
    div.style.lineHeight = "18px";
    div.style.whiteSpace = "nowrap";
    div.style.MozUserSelect = "none";
    div.style.fontSize = "12px";
    var span = (this._span = document.createElement("span"));
    div.appendChild(span);
    span.appendChild(document.createTextNode(this._text));
    var that = this;

    // this._arrow = document.createElement("div");
    var arrow = (this._arrow = document.createElement("div"));
    // arrow.style.background =
    //   "url(//map.baidu.com/fwmap/upload/r/map/fwmap/static/house/images/label.png) no-repeat";
    arrow.style.position = "absolute";
    arrow.style.width = "11px";
    arrow.style.height = "10px";
    arrow.style.top = "22px";
    arrow.style.left = "10px";
    arrow.style.overflow = "hidden";
    div.appendChild(arrow);

    div.onmouseover = function () {
      this.style.backgroundColor = "#6BADCA";
      this.style.borderColor = "#0000ff";
      this.getElementsByTagName("span")[0].innerHTML = that._overText;
      this._arrow.style.backgroundPosition = "0px -20px";
    };

    div.onmouseout = function () {
      this.style.backgroundColor = "#EE5D5B";
      this.style.borderColor = "#BC3B3A";
      this.getElementsByTagName("span")[0].innerHTML = that._text;
      this._arrow.style.backgroundPosition = "0px 0px";
    };

    this._map.getPanes().labelPane.appendChild(div);

    return div;
  };

  ComplexCustomOverlay.prototype.draw = function () {
    var map = this._map;
    var pixel = map.pointToOverlayPixel(this._point);
    this._div.style.left = pixel.x - parseInt(this._arrow.style.left) + "px";
    this._div.style.top = pixel.y - 30 + "px";
  };

  return ComplexCustomOverlay;
}

export default init;
